<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>


  
  <meta http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">

  


  
  <title></title>
  <meta name="GENERATOR" content="StarOffice 6.0 (Solaris Sparc)">


  
  <meta name="AUTHOR" content=" ">


  
  <meta name="CREATED" content="20020111;13083600">


  
  <meta name="CHANGED" content="20030626;16133700">


  
  <style>
<!--
H2 { font-family: "Sunsans Demi" }
H3 { font-family: "Sunsans Demi" }
P.text-body-indent { margin-left: 0.5cm }
-->
  </style>
</head>


<body style="background-color: rgb(255, 255, 255);" lang="en-US">


<h1>Customization of Qmon</h1>


<p style="margin-bottom: 0cm;">The <b>qmon(1) </b>graphical
user
interface can be used to perform all administrative tasks in Grid
Engine, as well as providing users with a way to submit and monitor
jobs. By default, both<span lang="en-US"> administrative </span>and
operational features appear together in a single GUI. This HOWTO goes
over ways to customize the behavior of qmon so that only certain
functions are operable. It also shows how to make the GUI more
user-friendly, by increasing button size and modifying field size in
the Job Control window.</p>


<h3><a name="Contents"></a>Contents</h3>


<ol>


  <li>
    
    <p style="margin-bottom: 0cm;"><a href="#Specifying%20which%20buttons%20are%20active%7Coutline">Specifying
which buttons are active</a></p>


  </li>


  <li>
    
    <p style="margin-bottom: 0cm;"><a href="#Changing%20the%20size%20of%20the%20main%20screen%20buttons%7Coutline">Changing
the size of the main screen buttons</a></p>


  </li>


  <li>
    
    <p style="margin-bottom: 0cm;"><a href="#Resizing%20Job%20Control%20fields%7Coutline">Resizing
Job Control fields</a></p>


  </li>


  <li>
    
    <p style="margin-bottom: 0cm;"><a href="#Setting%20Administrator%20Defaults%7Coutline">Setting
administrator defaults</a></p>
  </li>
  <li>Showing the additional Host folder in Queue Configuration</li>


  <li>
    <p style="margin-bottom: 0cm;"><a href="#Troubleshooting_qmon">Troubleshooting
Hints<br>
    </a></p>
  </li>


</ol>


<hr>
<h2><a name="Specifying which buttons are active|outline"></a>Specifying
which buttons are active</h2>


<p style="margin-bottom: 0cm;">In order to restrict the
buttons active
in the main panel of <b>qmon</b>, a wrapper script must be
created
that calls the actual binary with a modified environment variable:</p>


<p class="text-body-indent"><code>#!/bin/ksh<br>


# wrapper script for
qmon to change default appearance<br>


export
XFILESEARCHPATH=$SGE_ROOT/qmon/Qmon<br>


qmon.real</code></p>


<p style="margin-bottom: 0cm;">Rename the <code>qmon</code>
binary to<span lang="en-US">
<code>qmon.real</code>. </span>Note this must be
done individually
for all architecture binaries of qmon, <span lang="en-US">e.g.</span>,
all of <code>$SGE_ROOT/bin/*/qmon</code></p>


<p style="margin-bottom: 0cm;">Next, the file <code>$SGE_ROOT/qmon/Qmon</code>
must be modified to reflect the changes. Add the end of the file, add
the following:</p>


<pre style="margin-left: 2cm;">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>!! CHANGES<br>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>!Qmon*JOB_CONTROL.sensitive: False<br>!Qmon*QUEUE_CONTROL.sensitive: False<br>!Qmon*SUBMIT_JOB.sensitive: False<br>Qmon*COMPLEX_CONFIG.sensitive: False<br>Qmon*HOST_CONFIG.sensitive: False<br>Qmon*CLUSTER_CONFIG.sensitive: False<br>Qmon*SCHED_CONFIG.sensitive: False<br>Qmon*CALENDAR_CONFIG.sensitive: False<br>Qmon*USER_CONFIG.sensitive: False<br>Qmon*PE_CONFIG.sensitive: False<br>Qmon*CKPT_CONFIG.sensitive: False<br>!Qmon*BROWSER.sensitive: False<br>Qmon*TICKET_OVERVIEW.sensitive: False<br>Qmon*PROJECT_CONFIG.sensitive: False<br>!Qmon*EXIT.sensitive: False<br>Qmon*MainMenuBar.sensitive: False</pre>


<p style="margin-bottom: 0cm;">This disables the<span lang="en-US"> administrative </span>functions
and the menu bar (which is another path to administrative functions).
If you <span lang="en-US">uncomment</span> (remove
the !)</p>


<pre style="margin-left: 2cm; margin-bottom: 0.5cm;">!Qmon*QUEUE_CONTROL.sensitive: False</pre>


<p style="margin-bottom: 0cm;">then users cannot see the
Queue Control either. Basically, any button
which is not commented out by ! becomes disabled.</p>


<h2><a name="Changing the size of the main screen buttons|outline"></a>
Changing the size of the main screen buttons</h2>


<p style="margin-bottom: 0cm;">The default button size on
the main
screen of qmon is small and the function of the button cannot be seen
without hovering the pointer over it to view the<span lang="en-US">
ToolTip. </span>You can change the size of these buttons and
make
them large enough to read the action written on them.</p>


<p style="margin-bottom: 0cm;">To do this, change the same
Qmon file
as above from:</p>


<pre style="margin-left: 2cm;">!! Qmon*pixmapFilePath: %R/qmon/PIXMAPS/big/%N.xpm:%R/qmon/PIXMAPS/%N.xpm<br>Qmon*pixmapFilePath: %R/qmon/PIXMAPS/%N.xpm</pre>


<p style="margin-bottom: 0cm;">to</p>


<pre style="margin-left: 2cm;">Qmon*pixmapFilePath: %R/qmon/PIXMAPS/big/%N.xpm:%R/qmon/PIXMAPS/%N.xpm<br>!! Qmon*pixmapFilePath: %R/qmon/PIXMAPS/%N.xpm</pre>


<hr>
<p style="margin-bottom: 0cm;">Below is a <span lang="en-US">screenshot</span>
of the window resulting from both of the above modifications:</p>


<p style="margin-bottom: 0cm;"><br>


</p>


<img src="qmon_custom.gif" name="Customized Qmon appearance" align="left" border="0" height="208" width="593"><br clear="left">


<hr>
<h2 style="margin-top: 0cm; margin-bottom: 0cm;"><a name="Resizing Job Control fields|outline"></a>Resizing
Job Control fields</h2>


<p style="margin-bottom: 0cm;">The Job Control window
provides a way
to see a summary of pending, running, and finished jobs. The fields
which are displayed can be easily changed by pressing the C<i>ustomize</i><span style="font-style: normal;">
button in that window. However, there is also a way to change the
field widths so that the full information for each field can be
viewed. A horizontal scroll bar permits viewing of all information
in case it doesn't fit on the screen all at once.</span></p>


<p style="margin-bottom: 0cm; font-style: normal;">To
change field
widths in any of the three Job Control panes, </p>


<ol>


  <li>
    
    <p style="margin-bottom: 0cm; font-style: normal;">move
the mouse pointer below any field divider</p>


  </li>


  <li>
    
    <p style="margin-bottom: 0cm; font-style: normal;">Click
and hold <i>Control-middle-mouse-button</i> and a vertical
separator line will appear</p>


  </li>


  <li>
    
    <p style="margin-bottom: 0cm; font-style: normal;">drag
this separator with the mouse to the desired width, and release</p>


  </li>


</ol>


<p style="margin-bottom: 0cm; font-style: normal;">The
diagram shows
an example after resizing the job name field.</p>


<img src="qmon_custom_job2.gif" name="Graphic1" align="left" border="0" height="565" width="723"><br clear="left">


<hr>
<h2 style="margin-top: 0cm; margin-bottom: 0cm;"><br>
</h2>
An enhanced possibility to adjust the column sizes permanently for the
first 6 columns is to add the following &nbsp;lines to the user's
$HOME/Qmon file:<br>
<br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!! job configuration settings<br>
!! Qmon*job_form*columnWidths: nr of characters per column for<br>
!!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
the first 6 cols<br>
!! Qmon*job_form*visibleColumns: nr of visible columns (without scrollbar)<br>
!!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if the column sizes shall be bigger this can<br>
!!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
be lowered to show only the first n cols and<br>
!!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
the rest can be reached with the horizontal<br>
!!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
scrollbar<br>
!!<br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
Qmon*job_form*columnWidths:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12,8,10,10,7,16<br>
Qmon*job_form*visibleColumns:&nbsp;&nbsp;&nbsp; 6<br>
<br>
<h2 style="margin-top: 0cm; margin-bottom: 0cm;"><a name="Setting Administrator Defaults|outline"></a>Setting
Administrator Defaults</h2>


<p style="margin-bottom: 0cm;">Using a wrapper script and
modified
Qmon resource file, the changes are global. However, these changes
can be overridden for individual users, such as the SGE admin user.
To have user-specific settings, do the following:</p>


<ol>


  <li>
    
    <p style="margin-bottom: 0cm;">create a private copy
of the Qmon resource in the home directory of the user, which specifies
all desired features. For example, have big buttons, and do not disable
any of them.</p>


  </li>


  <li>
    
    <p style="margin-bottom: 0cm;">have the user invoke
the <code>qmon.real</code> binary (as opposed to the
wrapper script)</p>


  </li>


</ol>


<p style="margin-bottom: 0cm;">In this way, the SGE admin
user can
re-enable the administrative functions in <b>qmon</b>.</p>


<h2><span style="font-family: &quot;Sunsans Demi&quot;;"><span style="font-weight: bold;"></span></span><a name="HostFolder"></a>Showing the additional Host folder in Queue Configuration</h2>
It is possible to display an additional Host folder in the Queue
Configuration dialogue beginning with release &nbsp;6.0u10 and
6.1preview2. This gives you a similar view like the qhost CLI client.<br>
The following lines have to be added to the user's $HOME/Qmon file:<br>
<br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!! show the Host tab in Queue Configuration<br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
Qmon*showHostTab:&nbsp; TRUE<br>
Qmon*automaticUpdateHostTab: TRUE<br>
<br>
For older versions this has no effect. <br>
<br>


<h2><a name="Troubleshooting_qmon"></a>Troubleshooting
qmon</h2>


<ol>


  <li>Problems to start qmon<br>

    <br>


    
    <ol>


      <li>libXltree.so:cannot open shared object <br>


source the GE environment:<br>


% source $SGE_ROOT/default/common/settings.csh<br>


or under&nbsp;sh like shells<br>


# . &nbsp;$SGE_ROOT/default/common/settings.sh</li>


      <li>Qmon crashes, when I try to click on some of the buttons<br>


make sure you are using openmotif and not lesstif<br>


% rpm -qa |grep motif <br>


        <br>


on some linux flavors backward compatible libraries need to be
installed.<br>


See&nbsp;<a href="http://gridengine.sunsource.net/issues/show_bug.cgi?id=1332">Issue
1332</a></li>


      <li>qmon crashes due to a 64bit bug in icon display<br>


Happens in displays that use 24bit color depth. To work around the
crash set the color depth to 16bit or lower. (also applicable to remote
displays)<br>


This bug has been fixed for 6.0u5 and 5.3p7. (See <a href="http://gridengine.sunsource.net/issues/show_bug.cgi?id=1541">Issue
1541</a> )</li>


      <li>qmon crashes when used with (open)ssh<br>


In newer openssh versions it is necessary to use the ssh -Y option for
trusted X11 forwarding (see <a href="http://www.openssh.com/faq.html#3.13">openssh
&amp; X11</a> )<br>


        <br>


      </li>


    
    </ol>


  </li>


  <li>Problems with qmon icons appearing in a different
application<br>

    <br>


See sunsolve patches: 114620, 114603, 114602<br>

    <br>


  </li>


  <li>Problems to build qmon<br>


    
    <ol>


      <li>undefined symbols: &nbsp;_XEdit*<br>


search for libXmu* and check with nm if the missing symbol is
contained, add the library to the aimk section of your architecture and
rebuild</li>


      <li>The Linux courtesy binaries are build against
libXm.so.2 (openmotif)<br>


strings /usr/X11R6/lib/libXm.so.2 | grep&nbsp; 'Motif Version'<br>


=&gt; &nbsp;@(#)Motif Version 2.1.30<br>


You have to install a compatible OpenMotif version as outlined in <a href="http://gridengine.sunsource.net/issues/show_bug.cgi?id=1332">Issue
1332</a>. A rebuild&nbsp;against libXm.so.3 is possible of
coures, a symbolic link from libXm.so.3 to libXm.so.2 is not sufficient.<br>


&nbsp;</li>


    
    </ol>


  </li>


  <li>Problems with locale<br>

    <br>


    
    <ol>


      <li>on some linux flavors the Motif library has a
localization bug resulting in the following warning:<br>


Name: tf<br>


Class: XmTextField<br>


Character '\60' not supported in font. Discarded.<br>


        <br>


% env LANG=C qmon &nbsp; &nbsp; &nbsp; solves the problem</li>


      <li>Warning: XmtLoadResourceFile: file 'qmon_messages' not
found.<br>


% env | grep LANG<br>


% env | grep LC_MESSAGES<br>


check if these variables are set to something else than C or Posix <br>


% env LANG=C qmon &nbsp; &nbsp; &nbsp; if you don't need
the localized version<br>


SGE(EE) 5.3 (Solaris, Linux only) contains localization bundles for
French, Simplified Chinese, Japanese and Taiwanese. Install the l10n
packages then the warning disappears.<br>

        <br>


      </li>


    
    </ol>


  </li>


  <li>Problems with fonts<br>

    <br>


The fonts that are used by qmon can be changed with the $HOME/Qmon
customization file.<br>


Copy $SGE_ROOT/qmon/Qmon to your home directory and replace the fonts
with the fonts available on your system.<br>


Another possibility is to run a fontserver on one machine that is
referenced in the fontpath of the hosts you use as a display machine.
This is often necessary for tools like Xvnc or similar. You can of
course also install the missing fonts on these machines and add them to
the fontpath of the corresponding Xserver. (man xfs, man xfsinfo) <br>


Here is an example how to set things up:<br>


    
    <ul>


      <li>FontServer requests are handled via inetd and the
following inetd.conf entry<br>


# Sun Font Server<br>


#<br>


fs&nbsp;&nbsp;&nbsp;&nbsp; stream&nbsp;&nbsp;
tcp6&nbsp; wait nobody /usr/openwin/lib/fs.auto&nbsp;&nbsp;
fs<br>


      </li>


      <li>The Xserver has something similar in his font path:<br>


tcp/foo:7100 for a host named foo and the default port 7100<br>


you can check with:&nbsp; xset q &nbsp; &nbsp;and
&nbsp; &nbsp;xlsfonts<br>


        <br>


Additional information can be found in the man pages X11, xfs, xlsfonts
and xset.&nbsp;</li>


    
    </ul>


    <br>


    <br>


To see which fonts are used or generate a warning, set the XMTDEBUGFONT
environment variable. In the following example&nbsp;<br>


    
    <pre>Warning: Cannot convert string "-adobe-helvetica-medium-r-*--20-*-*-*-p-*-*-*" to type FontStruct</pre>


    <br>

 gives the hint that this font cannot be found. You can
replace
this font with a font that is available and has a similar look and size
(xlsfonts, xfontsel) and put it into $HOME/Qmon.
    <br>


    
    <pre>% setenv XMTDEBUGFONT<br>% qmon<br>FontListCvt:<br>-&gt;-adobe-helvetica-medium-r-*--14-*-*-*-p-*-*-*=R,-adobe-helvetica-bold-r-*--14-*-*-*-p-*-*-*=B,-adobe-helvetica-medium-r-*--20-*-*-*-p-*-*-*=BIG,-adobe-helvetica-medium-r-*--12-*-*-*-p-*-*-*=SMALL,-adobe-helvetica-medium-r-*--24-*-*-*-p-*-*-*=HUGE,-adobe-courier-medium-r-*--14-*-*-*-m-*-*-*=LIST,-adobe-courier-bold-r-*--14-*-*-*-m-*-*-*=LISTBOLD,-adobe-courier-medium-r-*--12-*-*-*-m-*-*-*=LISTSMALL,-adobe-helvetica-medium-r-*--10-*-*-*-p-*-*-*=QUEUEICON&lt;-<br>------------------------<br>baselist[0]: '-adobe-helvetica-medium-r-*--14-*-*-*-p-*-*-*=R'<br>font_type: 'XmFONT_IS_FONT'<br>bs: '-adobe-helvetica-medium-r-*--14-*-*-*-p-*-*-* (R)'<br>baselist[0]: '-adobe-helvetica-bold-r-*--14-*-*-*-p-*-*-*=B'<br>font_type: 'XmFONT_IS_FONT'<br>bs: '-adobe-helvetica-bold-r-*--14-*-*-*-p-*-*-* (B)'<br>baselist[0]: '-adobe-helvetica-medium-r-*--20-*-*-*-p-*-*-*=BIG'<br>font_type: 'XmFONT_IS_FONT'<br>bs: '-adobe-helvetica-medium-r-*--20-*-*-*-p-*-*-* (BIG)'<br>Warning: Cannot convert string "-adobe-helvetica-medium-r-*--20-*-*-*-p-*-*-*" to type FontStruct<br>baselist[0]: '-adobe-helvetica-medium-r-*--12-*-*-*-p-*-*-*=SMALL'<br>font_type: 'XmFONT_IS_FONT'<br>bs: '-adobe-helvetica-medium-r-*--12-*-*-*-p-*-*-* (SMALL)'<br>baselist[0]: '-adobe-helvetica-medium-r-*--24-*-*-*-p-*-*-*=HUGE'<br>font_type: 'XmFONT_IS_FONT'<br>bs: '-adobe-helvetica-medium-r-*--24-*-*-*-p-*-*-* (HUGE)'<br>baselist[0]: '-adobe-courier-medium-r-*--14-*-*-*-m-*-*-*=LIST'<br>font_type: 'XmFONT_IS_FONT'<br>bs: '-adobe-courier-medium-r-*--14-*-*-*-m-*-*-* (LIST)'<br>baselist[0]: '-adobe-courier-bold-r-*--14-*-*-*-m-*-*-*=LISTBOLD'<br>font_type: 'XmFONT_IS_FONT'<br>bs: '-adobe-courier-bold-r-*--14-*-*-*-m-*-*-* (LISTBOLD)'<br>baselist[0]: '-adobe-courier-medium-r-*--12-*-*-*-m-*-*-*=LISTSMALL'<br>font_type: 'XmFONT_IS_FONT'<br>bs: '-adobe-courier-medium-r-*--12-*-*-*-m-*-*-* (LISTSMALL)'<br>baselist[0]: '-adobe-helvetica-medium-r-*--10-*-*-*-p-*-*-*=QUEUEICON'<br>font_type: 'XmFONT_IS_FONT'<br>bs: '-adobe-helvetica-medium-r-*--10-*-*-*-p-*-*-* (QUEUEICON)'<br>XmFONT_IS_FONT: R<br>XmFONT_IS_FONT: B<br>XmFONT_IS_FONT: BIG<br>XmFONT_IS_FONT: SMALL<br>XmFONT_IS_FONT: HUGE<br>XmFONT_IS_FONT: LIST<br>XmFONT_IS_FONT: LISTBOLD<br>XmFONT_IS_FONT: LISTSMALL<br>XmFONT_IS_FONT: QUEUEICON<br>XmFONT_IS_FONT: no tag<br><br></pre>


  </li>

</ol>


</body>
</html>
